package com.serene.authority.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.serene.authority.admin.entity.vo.RoleVo;
import com.serene.authority.admin.entity.MyRole;
import com.serene.authority.common.utils.Result;

/**
 * @author serene
 * @createTime 2020/7/10
 */
public interface RoleService extends IService<MyRole> {

    /**
     * 返回角色
     *
     * @param startPosition
     * @param limit
     * @param myRole
     * @return
     */
    Result<MyRole> getFuzzyRolesByPage(Integer startPosition, Integer limit, MyRole myRole);

    /**
     * 通过id获得角色信息
     *
     * @param roleId
     * @return
     */
    MyRole getRoleById(Integer roleId);

    /**
     * 更新角色
     *
     * @param roleDto
     * @return
     */
    Result update(RoleVo roleDto);

    /**
     * 修改角色信息
     *
     * @param roleVo
     * @return
     */
    public Integer updateRole(RoleVo roleVo);

    /**
     * 数据权限
     *
     * @param roleDto
     * @return
     */
    Result authDataScope(RoleVo roleDto);

    /**
     * 新建角色
     *
     * @param roleDto
     * @return
     */
    Result save(RoleVo roleDto);

    /**
     * 删除角色
     *
     * @param roleId 角色id
     * @return
     */
    Result<MyRole> delete(Integer roleId);

    /**
     * 根据角色id删除角色信息
     *
     * @param roleId 角色id
     * @return
     */
    public Integer delRoleByRoleId(Integer roleId);


    /**
     * 获取全部角色
     *
     * @return
     */
    Result<MyRole> getAllRoles();

    /**
     * 修改角色信息
     *
     * @param roleVo
     * @return
     */
    public Integer updateRole(MyRole roleVo);
}
